/*
 * © Copyright 2011 Romain Marteau, Matthieu Totet
 * 
 *    This file is part of VineaToum.
 *
 *    VineaToum is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    VineaToum is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with VineaToum.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.vineatoum.business.configuration;

import java.util.List;
import java.util.Vector;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "configuration")
@XmlAccessorType(XmlAccessType.FIELD)
public class Configuration {
	@XmlElementWrapper(name = "appellations")
	@XmlElement(name = "appellation")
	private List<Appellation> appellations;

	@XmlElementWrapper(name = "appellationTypes")
	@XmlElement(name = "appellationType")
	private List<AppellationType> appellationTypes;

	@XmlElementWrapper(name = "cepages")
	@XmlElement(name = "cepage")
	private List<Cepage> cepages;

	@XmlElementWrapper(name = "communes")
	@XmlElement(name = "commune")
	private List<Commune> communes;

	@XmlElementWrapper(name = "producerOenos")
	@XmlElement(name = "producerOeno")
	private List<ProducerOeno> producerOenos;

	@XmlElementWrapper(name = "lieuDits")
	@XmlElement(name = "lieuDit")
	private List<LieuDit> lieuDits;

	@XmlElementWrapper(name = "productOenoTypes")
	@XmlElement(name = "productOenoType")
	private List<OenologicalProductType> productOenoTypes;

	@XmlElementWrapper(name = "cuveTypes")
	@XmlElement(name = "cuveType")
	private List<CuveType> cuveTypes;

	@XmlElementWrapper(name = "soilTypes")
	@XmlElement(name = "soilType")
	private List<SoilType> soilTypes;

	@XmlElementWrapper(name = "maturityMeasureTypes")
	@XmlElement(name = "maturityMeasureType")
	private List<MaturityMeasureType> maturityMeasureTypes;

	public Configuration() {
		appellations = new Vector<Appellation>();
		appellationTypes = new Vector<AppellationType>();
		cepages = new Vector<Cepage>();
		communes = new Vector<Commune>();
		producerOenos = new Vector<ProducerOeno>();
		lieuDits = new Vector<LieuDit>();
		productOenoTypes = new Vector<OenologicalProductType>();
		cuveTypes = new Vector<CuveType>();
		soilTypes = new Vector<SoilType>();
		maturityMeasureTypes = new Vector<MaturityMeasureType>();
	}

	public void setAppellation(Vector<Appellation> appellations) {
		this.appellations = appellations;
	}

	public void setAppellationType(Vector<AppellationType> appellationTypes) {
		this.appellationTypes = appellationTypes;
	}

	public void setCepage(Vector<Cepage> cepages) {
		this.cepages = cepages;
	}

	public void setCommune(Vector<Commune> communes) {
		this.communes = communes;
	}

	public void setProducerOeno(Vector<ProducerOeno> producerOeno) {
		this.producerOenos = producerOeno;
	}

	public void setLieuDit(Vector<LieuDit> lieuDits) {
		this.lieuDits = lieuDits;
	}

	public void setProductOeno(Vector<OenologicalProductType> productOenoTypes) {
		this.productOenoTypes = productOenoTypes;
	}

	public void setCuveType(Vector<CuveType> cuveTypes) {
		this.cuveTypes = cuveTypes;
	}

	public void setSoilType(Vector<SoilType> soilTypes) {
		this.soilTypes = soilTypes;
	}

	public void setMaturityMeasureType(
			Vector<MaturityMeasureType> maturityMeasureTypes) {
		this.maturityMeasureTypes = maturityMeasureTypes;
	}

	/**
	 * @return the appellations
	 */
	public List<Appellation> getAppellations() {
		return appellations;
	}

	/**
	 * @return the appellationTypes
	 */
	public List<AppellationType> getAppellationTypes() {
		return appellationTypes;
	}

	/**
	 * @return the cepages
	 */
	public List<Cepage> getCepages() {
		return cepages;
	}

	/**
	 * @return the communes
	 */
	public List<Commune> getCommunes() {
		return communes;
	}

	/**
	 * @return the producerOenos
	 */
	public List<ProducerOeno> getProducerOenos() {
		return producerOenos;
	}

	/**
	 * @return the lieuDits
	 */
	public List<LieuDit> getLieuDits() {
		return lieuDits;
	}

	/**
	 * @return the productOenoTypes
	 */
	public List<OenologicalProductType> getProductOenoTypes() {
		return productOenoTypes;
	}

	/**
	 * @return the cuveTypes
	 */
	public List<CuveType> getCuveTypes() {
		return cuveTypes;
	}

	/**
	 * @return the soilTypes
	 */
	public List<SoilType> getSoilTypes() {
		return soilTypes;
	}

	/**
	 * @return the maturityMeasureTypes
	 */
	public List<MaturityMeasureType> getMaturityMeasureTypes() {
		return maturityMeasureTypes;
	}

}
